<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

</head>
<body>
<h1>
    计算自己出生那天是该年当中的第几天
</h1>
<script>
    // 你出生的那天是同一年的第几天
    // 如果输入不合法就重复输入直到合法位置，当输入合法的时候调到下一个函数
    function validate() {
        let year = parseInt(prompt('请输入你的出生年份'));
        let month = parseInt(prompt('请输入你的出生月份'));
        let day = parseInt(prompt('请输入你的出生日期'));
        let Cyear = new Date().getFullYear();
        if (year < Cyear && month < 12 && month > 0 && day < 31 && day > 0) {
            return calculator(year,month,day);
        } else {
            alert('输入错误');
            return validate();
        }

        function calculator(year, month, day) {
            let count = 0;
            let Pmonth = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; //循环把你这个月份的前几个月累加出来
            for (let i = month - 2; i >= 0; i--) {
                count += Pmonth[i]; //最后输出统计天数count
                if ((year % 100 !== 0 && year % 4 === 0) || (year % 100 === 0 && year % 400 === 0)) {
                    if (month > 2) {  // 如果是闰年,并且月份大于2
                        count += 1;
                    }
                }

            }
            let result = count + day;
            document.write("是该年的第" + result + "天");
        }
    }
    validate();
</script>
</body>
</html>